const { tree } = require('./tree')

/**
 * 筛选所有含有子节点的节点
 * @param {*} dataSource 树形数据
 * @param {*} isLeaf 是否返回叶子节点
 * @param {*} childName 子节点字段名
 * @param {*} nodeElName 节点字段名
 */

function filterLeafs(dataSource, isLeaf = true, childName = 'children', nodeElName = 'id') {
  const stack = []
  const dfs = array => {
    array.forEach(item => {
      if (item[childName] instanceof Array && item[childName].length) {
        stack.push(isLeaf ? item : item[nodeElName])
        dfs(item[childName])
      }
    })
  }
  dfs(dataSource)
  return stack
}
const result = filterLeafs(tree)
console.log(result)
